package com.yfbao.horizon.schedule.tk.front.dto;

import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;

/**
 * Front2 log entry schema
 *
 * 字段来源于表格定义：
 * - id(string, 必填): 事件id
 * - name(string, 必填): 事件名称
 * - startTime(number, 必填): 事件开始时间（epoch millis）
 * - endTime(number, 必填): 事件结束时间（epoch millis）
 * - duration(number, 必填): 持续时长（毫秒）
 * - type(string, 必填): 事件类型
 * - level(string, 选填): 事件等级
 * - data(object, 选填): 事件数据
 * - params(object, 选填): 事件参数

 */
@Data
public class FrontLogDto {
    // 必填: 事件 id
    private String id;

    // 必填: 事件名称
    private String name;

    // 必填: 事件开始时间（epoch millis）
    private long startTime;

    // 必填: 事件结束时间（epoch millis）
    private long endTime;

    // 必填: 事件持续时间（毫秒）
    private long duration;


    // 必填: 事件类型
    private String type;

    // 选填: 事件等级（INFO/WARN/ERROR/DEBUG/TRACE等）
    private String level;

    // 选填: 事件数据
    private String data;

    // 选填: 事件参数
    private String params;

    // 内部使用：入队时间（纳秒），不序列化到JSON
    @JsonIgnore
    private long enqueueTimeNanos;


}
